<?php

declare(strict_types=1);

namespace Plugin\Attractions\Commerce\Model\Commerce_merchant;

use Hyperf\Database\Model\SoftDeletes;
use Hyperf\DbConnection\Model\Model;

/**
 * @property int $id 主键ID
 * @property int $spot_id 点位ID
 * @property string $merchant_name 商户名称
 * @property int $merchant_type 商户类型：1-个体户，2-企业，3-虚拟商户，4-合作社，5-政府单位
 * @property string $legal_person 法人代表
 * @property string $legal_person_phone 法人联系方式
 * @property string $legal_person_id_card 法人身份证
 * @property string $contact_person 商户联系人
 * @property string $contact_phone 商户联系电话
 * @property string $contact_email 联系邮箱
 * @property string $address 商店地址
 * @property string $business_scope 经营范围
 * @property string $open_time 商户开门时间
 * @property string $close_time 商户关门时间
 * @property string $registered_capital 注册资本
 * @property string $established_date 成立日期
 * @property string $business_license_url 营业执照照片
 * @property string $business_license 营业执照号
 * @property string $tax_id 税务登记号
 * @property string $bank_name 开户银行
 * @property string $bank_account 银行账号
 * @property int $status 商户状态：1-正常营业，2-歇业，3-注销
 * @property string $remark 备注
 * @property int $admin_id 商户管理员ID
 * @property \Carbon\Carbon $created_at 
 * @property \Carbon\Carbon $updated_at 
 * @property string $deleted_at 
 */
class CommerceMerchant extends Model
{
    use SoftDeletes;
    /**
     * The table associated with the model.
     */
    protected ?string $table = 'commerce_merchant';

    /**
     * The attributes that are mass assignable.
     */
    protected array $fillable = ['id', 'spot_id', 'merchant_name', 'admin_id', 'merchant_type', 'legal_person', 'legal_person_phone', 'legal_person_id_card', 'contact_person', 'contact_phone', 'contact_email', 'address', 'business_scope', 'open_time', 'close_time', 'registered_capital', 'established_date', 'business_license_url', 'business_license', 'tax_id', 'bank_name', 'bank_account', 'status', 'remark', 'created_at', 'updated_at', 'deleted_at'];

    /**
     * The attributes that should be cast to native types.
     */
    protected array $casts = ['id' => 'integer', 'admin_id' => 'integer', 'spot_id' => 'integer', 'merchant_type' => 'integer', 'registered_capital' => 'decimal:2', 'status' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime'];
}
